import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Text {
    public static List<List<Integer>> List(int Number){

        List<List<Integer>> Tem = new ArrayList<>();
        List<Integer> tem = new ArrayList<>();
        //开头创建第0行
        tem.add(1);
        Tem.add(tem);
        //中间过程,创建第一行开始
        for (int i = 1; i < Number; i++) {
            List<Integer> tem2 = new ArrayList<>();

            //为所有行第一位添加1
            tem2.add(1);

            //求每行去除首位之后的中间元素
            List<Integer> tem3 = new ArrayList<>();
            tem3 = Tem.get(i - 1);
            for (int j = 1; j < i; j++) {
                tem2.add(tem3.get(j)+tem3.get(j - 1));
            }
            //为每行末尾增加一个1
            tem2.add(1);

            //将tem2数组添加到Tem数组当中
            Tem.add(tem2);
        }

        return Tem;
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();

        List<List<Integer>> B = List(A);

        for (int i = 0; i < A; i++) {
            System.out.println(B.get(i));
        }

    }
}
